// coding: utf-8
// @Author : lryself
// @Date : 2020/10/19 20:04
// @Software: GoLand

// 题目：给定 S 和 T 两个字符串，当它们分别被输入到空白的文本编辑器后，判断二者是否相等，并返回结果。 # 代表退格字符。
// eg:
//输入：S = "ab#c", T = "ad#c"
//输出：true
//解释：S 和 T 都会变成 “ac”。
// 题目url：https://leetcode-cn.com/problems/backspace-string-compare/
package main

import (
	"fmt"
	"go_learning/src/utils"
)

func main() {
	S:="isfcow#"
	T:="isfco#w#"
	e1 := backspaceCompare
	utils.DecoratorExample(&e1,backspaceCompare)
	fmt.Println(e1(S,T))
	
}
func backspaceCompare(S string, T string) bool {
	str1:=[]int32{}
	str2:=[]int32{}
	for _,s :=range S{
		if s==35{
			if len(str1) == 0{
				continue
			}
			str1 = str1[:len(str1)-1]
		}else{
			str1 = append(str1, s)
		}
	}
	for _,s :=range T{
		if s==35{
			if len(str2) == 0{
				continue
			}
			str2 = str2[:len(str2)-1]
		}else{
			str2 = append(str2, s)
		}
	}
	if len(str1) != len(str2){
		return false
	}
	for i:=0;i<len(str1);i++{
		if str1[i]!=str2[i]{
			return false
		}
	}
	return true
}